{\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf160
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
\margl1440\margr1440\vieww12420\viewh9480\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural

\f0\fs24 \cf0 PS2Protocol\
\
This project will write and read from a PS2 keyboard.  It does not do anything but send and receive data.  The next project to be added to Google Code, PS2Keyboard, will wrapper PS2Protocol and make it easier to control the keyboard.  However, it will not translate scan codes into characters.  One more project, PS2Translator, will wrapper the PS2Keyboard and will do the scan code conversion.  \
\
The project has been set up to use the Harmony API or the lower level XC32 API.  The file system_config.h contains a #define HARMONY that can be commented out to change from Harmony to XC32.\
\
The project is configured for an 8 Mhz oscillator as the input.  To get it to compile you will need to create a new MPLABX project and set the Precompiled library path to point to PIC32MX270F256B_peripherals.a in the Harmony libraries.  In addition the gcc include directories should include the folder with the source files and the framework directory of the Harmony framework.\
\
This project includes files to test the PS2 communication.  In the main.c file put a break point on line 62 or 104 (a++).   The location depends on the #define PS2_PROTOCOL_INT.  If defined then the line 62 break point is used and the interrupt call back is used instead of polling for data.  Run the project and press a couple of keys followed by the \'91a\'92 key.  The debugger should now stop.  If you look in the buffer variable in the RingBuffer file you should see all the codes.  The RingBuffer is included only for this testing and only holds a small amount of codes.  The only file necessary for PS2 operation are PS2Protocol.c, PS2Protocol.h, CoreTimerDelay.c, CoreTimerDelay.h, and system_config.h.  The remainder are only for testing.\
\
}